package top.buluoluo.userservice.dto.response;

import lombok.Data;
import top.buluoluo.userservice.entity.User;

import java.util.Date;

/**
 * 用户信息传输对象（DTO）
 * 仅包含需要返回给前端的非敏感信息
 */
@Data
public class UserDTO {
    private Long id; // 使用Long替代BigInteger更符合Java习惯
    private String username;
    private String nickname; // 新增昵称字段（示例）
    private String avatarUrl; // 新增头像URL字段（示例）
    private Integer status;
    private Date createTime;
    private Date updateTime;
    private Date lastLoginTime;

    // 注意：不包含 passwordHash, email, phone 等敏感字段

    /**
     * 从实体类转换的工厂方法
     */
    public static UserDTO fromEntity(User user) {
        if (user == null) {
            return null;
        }
        UserDTO dto = new UserDTO();
        dto.setId(user.getId());
        dto.setUsername(user.getUsername());
        dto.setStatus(user.getStatus());
        dto.setCreateTime(user.getCreateTime());
        dto.setUpdateTime(user.getUpdateTime());
        dto.setLastLoginTime(user.getLastLoginTime());
        return dto;
    }
}